package com.timerecord.util;

/**
 * 时间格式化工具类（处理持续时间转换）
 */
public class TimeUtils {
    /**
     * 将秒数转换为 "天h时分m秒s" 格式
     * 例：3661秒 → 1h 1m 1s；86400秒 → 1d；3600秒 → 1h
     */
    public static String formatDuration(Long seconds) {
        if (seconds == null || seconds <= 0) {
            return "0s";
        }
        long days = seconds / 86400; // 1天=86400秒
        long hours = (seconds % 86400) / 3600; // 1小时=3600秒
        long minutes = (seconds % 3600) / 60; // 1分钟=60秒
        long secs = seconds % 60;

        StringBuilder sb = new StringBuilder();
        if (days > 0) {
            sb.append(days).append("d ");
        }
        if (hours > 0) {
            sb.append(hours).append("h ");
        }
        if (minutes > 0) {
            sb.append(minutes).append("m ");
        }
        if (secs > 0 || sb.length() == 0) { // 若前面都为0，显示秒
            sb.append(secs).append("s");
        }
        return sb.toString().trim(); // 移除末尾空格
    }
}